package cn.centec.mall.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.List;

/**
 * 标准 - 订单提交结果
 *
 * @author 延晓磊
 * @since 2023年04月10日
 */
@Data
public class StandardOrderSubmitResult {

    // 订单
    private List<Order> orders;
    // 地址
    private Addr addr;
    // 总额
    private BigDecimal amount;


    /**
     * 订单
     *
     * @author 延晓磊
     * @since 2023年04月10日
     */
    @Data
    public static class Order {
        // 订单号
        private String id;
        // 渠道
        private String channel;
        // 卖方：店铺，供应商
        private String seller;
        // 卖方名称
        private String sellerName;
        // 订单总额：商品金额+运费金额
        private java.math.BigDecimal amount;
        // 商品金额
        private java.math.BigDecimal itemAmount;
        // 运费金额
        private java.math.BigDecimal freightAmount;
        // 创建时间
        private java.time.LocalDateTime createTime;

        // 商品
        private List<OrderItem> items;
    }

    /**
     * 订单商品
     *
     * @author 延晓磊
     * @since 2023年04月10日
     */
    @Data
    public static class OrderItem {
        // 商品ID
        private String itemId;
        // 商品分类
        private String catId;
        // 商品名称
        private String name;
        // 商品主图
        private String img;
        // 销售单位
        private String unit;
        // 数量
        private Integer num;
        // 单价
        private java.math.BigDecimal price;
        // 订单金额
        private java.math.BigDecimal amount;
    }

    /**
     * 收件地址
     *
     * @author 延晓磊
     * @since 2023年04月10日
     */
    @EqualsAndHashCode(callSuper = true)
    @Data
    public static class Addr extends StandardOrderSubmitParam.Addr{
        // 地址名称
        private String areaName;
    }
}
